package com.jt.service;

import com.jt.pojo.User;

import java.util.List;

/**
 * @author tang
 * @data 2021/9/29
 * @apiNode
 */
public interface UserService {
    /**
     * 基于用户名查询用户信息,这个信息可以交给认证中心
     * 然后认证中心基于客户端输入的用户信息以及数据库端提供的数据信息进行认证比对
     * @param username
     * @return
     */

    User selectUserByUserName(String username);

    /**
     * 基于登录用户id查询用户权限,查询方案有很多种,例如:
     *      1.单表多次查询  (表不在一个数据库时)
     *      2.多表嵌套查询  (多个表在一个数据库,不同的数据表现出的性能不一样,mysql最差)
     *      3.多表关联查询  (多个表在一个数据库,基于外键手段关联,但现阶段的表设计中的外键通常是逻辑外键)
     * @param userId  登录用户id
     * @return  用户权限  sys:res:create,sys:res:delete,...
     */

    List<String> selectUserPermissions(Long userId);
}
